#ifndef MAP_SYSTEM_H
#define MAP_SYSTEM_H

#include "map_global.h"
#include "map_local.h"
#include <opencv2/core.hpp>

class MapSystem 
{
public:
    MapSystem(int global_width, int global_height, int local_width, int local_height, float grid_size = 0.05f);

    void updateLocalMap(const std::vector<unsigned char>& map_ptr, std::vector<cv::Point3f> pts, const cv::Point3f& fuse_xyz, const cv::Point3f& fuse_rpy, int i);


    std::vector<unsigned char> getUpdatedLocalMapData();


    void updateGlobalMap(const std::vector<unsigned char>& local_map);


    const std::vector<unsigned char>& getMapPointer() const;


private:
    
    MapGlobal global_map_;
    MapLocal local_map_;
};

#endif // MAP_SYSTEM_H


// cv::Point3d(p.x, p.y, p.z)